//package com.dupf.product.rpc.service.impl;
//
//import com.dupf.common.util.JmsUtil;
//import com.dupf.common.util.RedisUtil;
//import org.apache.activemq.command.ActiveMQQueue;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.jms.core.JmsTemplate;
//import org.springframework.stereotype.Service;
//import org.springframework.util.CollectionUtils;
//
//import java.util.Optional;
//import java.util.Set;
//
//@Service
//public class ProductCollectRedisServiceImpl {
//    private final Logger log = LoggerFactory.getLogger(ProductCollectRedisServiceImpl.class);
//
//    @Autowired
//    private JmsTemplate jmsQueueTemplate;
//
//    @Autowired
//    private ActiveMQQueue defaultQueueDestination;
//
//    public ProductCollectRedisServiceImpl() {
//
////        startProductCollectRedisServiceTask();
//    }
//
//    /**
//     * 保存
//     *
//     * @param productCollectInfo
//     */
//    public void saveProductCollectInfo(String productCollectInfo) {
//        RedisUtil.zadd("product-collect-info", System.currentTimeMillis(), productCollectInfo);
//    }
//
//    private Set<String> fetchProductCollectInfo() {
//        return RedisUtil.zremrangeByScoreReturn("product-collect-info", 0L, System.currentTimeMillis());
//    }
//
//    private void startProductCollectRedisServiceTask() {
//
//        Thread t = new Thread(() -> {
//            try {
//                // 等待服务器启动
//                Thread.sleep(60000);
//
//                while (true) {
//                    try {
//                        Thread.sleep(60000);
//                        sendProductCollectMessage();
//
//                    } catch (Exception e) {
//                        log.error("startProductCollectRedisServiceTask", e);
//                    }
//                }
//            } catch (Exception e1) {
//                log.error("startProductCollectRedisServiceTask", e1);
//            }
//        }, "startProductCollectRedisServiceTask");
//
//        t.start();
//    }
//
//    /**
//     * 发送采集消息
//     */
//    private void sendProductCollectMessage() {
//
//        if(Optional.ofNullable(RedisUtil.get("ip-pool-status")).orElse("false").equals("false")){
//            return;
//        }
//
//        Set<String> resultset = fetchProductCollectInfo();
//        if (CollectionUtils.isEmpty(resultset)) {
//            return;
//        }
//
//        for (String result : resultset) {
//            JmsUtil.sendMessage(jmsQueueTemplate, defaultQueueDestination, result);
//        }
//    }
//}
